package com.littlebee.storychild.common.utils;

import android.text.TextUtils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 作者：liaoyong on 2017/2/15 09:21
 * 邮箱：liaoyong@tuliu.com
 * 描述：价格工具类
 */
public final class PriceUtil {

    /**
     * 价格正则
     */
    public static final String REGEX_PRICE = "[-+]?[0-9]*\\.?[0-9]+";

    /**
     * 获取字符串中的价格
     *
     * @param strWithinPrice
     * @return
     */
    public static Double getPrice(String strWithinPrice) {
        String price = getMatched(strWithinPrice, REGEX_PRICE);
        if (TextUtils.isEmpty(price)) {
            return -0.0;
        } else {
            return Double.parseDouble(price);
        }
    }


    /**
     * 获取字符串中匹配指定正则的子串
     *
     * @param str   原始字符串
     * @param regex 正则表达式
     * @return
     */
    public static String getMatched(String str, String regex) {
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(str);
        if (matcher.find()) {
            return matcher.group();
        }
        return "";
    }

    /**
     * 格式化保留2位小数
     *
     * @param price
     * @return
     */
    public static String priceFormat(double price) {
        if (TextUtils.isEmpty(String.valueOf(price))) {
            return "0.00";
        }

        return String.format("%.2f", price).toString();
    }

    /**
     * 格式化保留2位小数
     *
     * @param price
     * @return
     */
    public static String priceFormat(String price) {
        if (TextUtils.isEmpty(price)) {
            return "0.00";
        }

        try {
            double d = Double.valueOf(price);
            return priceFormat(d);
        } catch (NumberFormatException e) {
            e.printStackTrace();
        }

        return "0.00";
    }
}
